/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package mundialfp.view.tables.paisPuntos;

import java.awt.Container;
import java.util.Collections;
import java.util.List;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JScrollPane;
import mundialfp.view.pais.PaisEnCompeticionComparator;
import mundialfp.view.tables.TableCustom2;
import mundialfp.view.tables.TableUtils;
import uy.com.pzit.fpmundialmodel.web.ws.Eliminatoria;
import uy.com.pzit.fpmundialmodel.web.ws.PaisEnCompeticion;
import uy.com.pzit.core.util.ImageUtil;

/**
 *
 * @author pferraz
 */
public class TablePuntosManager {

    public void createPointsTables(int hPref, int vPref, TableCustom2 table, Container panel) {

        JScrollPane jScroll = new JScrollPane();
        jScroll.setViewportView(table);
        GroupLayout pnlLayout = new GroupLayout(panel);
        panel.setLayout(pnlLayout);
        createLayoutAndFonts(hPref, vPref, pnlLayout, jScroll, table);

    }

    private void createLayoutAndFonts(int hPref, int vPref, GroupLayout pnlLayout, JScrollPane jScroll, TableCustom2 table) {
        pnlLayout.setHorizontalGroup(
                pnlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(pnlLayout.createSequentialGroup()
                        .addComponent(jScroll, javax.swing.GroupLayout.DEFAULT_SIZE, hPref, Short.MAX_VALUE)
                        .addContainerGap())
        );
        pnlLayout.setVerticalGroup(
                pnlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                .addGroup(pnlLayout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jScroll, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addContainerGap(vPref, Short.MAX_VALUE))
        );

        table.setFont(new java.awt.Font("Trebuchet MS", 1, 14));
    }

    public void initTablePuntos(TableCustom2 table, List<Eliminatoria> eliminatorias, String elimName, int subGrupo) {

        for (Eliminatoria e : eliminatorias) {
            if (e.getFechaInicio() != null) {
                if (e.getConfederacion().getNombre().equalsIgnoreCase(elimName)) {
                    if (e.getSubGrupoConfederacion() == subGrupo) {
                        initTablePuntos(table, e.getPaises(),e.getCupos());
                        break;
                    }
                }
            }
        }

    }

    public void initTablePuntos(TableCustom2 table, List<PaisEnCompeticion> paises,int cupos) {
        PuntosTableModel dTM = new PuntosTableModel(0);
        int BANDERA_HEIGHT = 30;
        int BANDERA_WIDTH = 50;
        table.setModel(dTM);
        /*Ordeno primero por puntos luego por diferencia de goles y por ultimo por goles a favor*/
        Collections.sort(paises, new PaisEnCompeticionComparator());
        for (PaisEnCompeticion p : paises) {
            int partidosJugados = p.getPEmpatados() + p.getPPerdidos() + p.getPGanados();
            int diffGoles = p.getGolesFavor() - p.getGolesContra();
            Object[] newRow = {dTM.getRowCount() + 1, new ImageIcon(ImageUtil.resizeImage(ImageUtil.decodeToImage(p.getPais().getBanderaB64()), BANDERA_WIDTH, BANDERA_HEIGHT)), p.getPais().getNombre(), partidosJugados, p.getPGanados(), p.getPEmpatados(), p.getPPerdidos(), p.getGolesFavor(), p.getGolesContra(), diffGoles, p.getPuntos()};
            dTM.addRow(newRow);
        }
        TableUtils.setHeight(table, BANDERA_HEIGHT + 5);
        table.resizeColumns(cupos);
    }
}
